<?php
namespace app\admin\controller;

use think\Controller;

class Category extends Controller
{
    private $obj;
    public function _initialize(){
      $this->obj=model('Category');
    }

    /**
     * 菜单首页
     * @return mixed
     */
    public function index()
    {

        $parentId=input('parent_id',0,'intval');
        $name=input('name');
        $status=input('status');

        $categorys=$this->obj->getCategory($parentId,$name,$status);
        $page=$categorys->render();
        $empty="<tr><td colspan='8' style='height: 150px;text-align: center'><p>暂时没有数据哟</p><br /><p><button class='layui-btn layui-btn-small layui-btn-normal' onclick='history.go(-1)'>立即返回</button></p></td></tr>";
        return $this->fetch("",[
            'categorys'=>$categorys,
            'page'=>$page,
            'empty'=>$empty
        ]);
    }

    /**
     * 添加菜单
     * @return mixed
     */
    public function add(){
        $categorys=$this->obj->getNormalFirstCategory();
        return $this->fetch("",[
            'categorys'=>$categorys
        ]);
    }

    /**
     * 编辑菜单
     * @return mixed
     */
    public function edit(){

        $id=input('get.',0,'intval');
        $category=$this->obj->get($id);
        $categorys=$this->obj->getNormalFirstCategory();
        return $this->fetch("",[
            'categorys'=>$categorys,
            'category'=>$category
        ]);
    }
    /**
     * 添加数据
     * @return array|void
     */
    public function save(){
      if(!request()->isAjax()){
          return $this->error('非法操作');
      }
      $data=input('post.');
      $validate=validate('Category');
      //验证
      if(!$validate->scene('add')->check($data)){
          return  show(1,$validate->getError());;
      }
      if($res= $this->obj->add($data)){
         return show(1,'生活分类添加成功！');
      }else{
          return show(0,'生活分类添加失败！');
      }
    }

    /**
     * 编辑更新
     * @return array|void
     */
    public function updateEdit(){
        if(!request()->isAjax()){
            return $this->error('非法操作');
        }
        $data=input('post.');
        $validate=validate('Category');
        //验证
        if(!$validate->scene('add')->check($data)){
            return  show(1,$validate->getError());;
        }

        if($res= $this->obj->updateById($data,$data['id'])){
            return show(1,'更新成功！');
        }else{
            return show(0,'更新成功！');
        }
    }

    /**
     * 编辑状态
     * @return array|void
     */
    public function updateStatus(){
        if(!request()->isAjax()){
            return $this->error('非法操作');
        }
        $data=input('post.');
        $validate=validate('Category');
        //验证
        if(!$validate->scene('status')->check($data)){
            return  show(0,$validate->getError());;
        }

        if($res= $this->obj->updateById($data,$data['id'])){
            return show(1,'更新成功！');
        }else{
            return show(0,'更新失败！');
        }
    }
    public function del(){
        if(!request()->isAjax()){
            return $this->error('非法操作');
        }
        $id=input('id');
        if(!is_numeric($id) || $id==''){
            return show(0,'id不合法！');
        }
        if($res= $this->obj->where('id','=',$id)->delete()){
            return show(1,'删除成功！');
        }else{
            return show(0,'删除失败！');
        }
    }
    /**
     * 批量删除
     */
    public function deleteAll(){
        if(!request()->isAjax()){
            return $this->error('非法操作');
        }
        $data=input('post.');
        if(!empty($data)){
            $res=$this->obj->destroy($data['id']);
            if($res){
                return show(1,'批量删除成功！');
            }else{
                return show(0,'批量删除失败！');
            }
        }else{
            return show(0,'请选择需要删除的选项！');
        }

    }

    /**
     * 批量排序
     */
    public function listOrderAll(){
        if(!request()->isAjax()){
            return $this->error('非法操作');
        }
        $data=input('post.');

        $res=$this->obj->saveAll($data['listorder']);
        if($res){
            return show(1,'批量更新成功！');
        }else{
            return show(0,'批量更新失败！');
        }
    }

}
